package com.mpsc.api.annotation;

import java.lang.annotation.*;

/**
 * es配置注解
 * 用于配置文档 filed 属性
 */
@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Inherited
public @interface ESField {

    /**
     * es 配置 fieldType类型，类似于mysql的table中的列
     * es核心数据类型：
     * 字符串：text,keyword
     * 数字型：long, integer, short, byte, double, float
     * 日期型：date
     * 布尔型：boolean
     * 二进制型：binary
     *
     * @return es索引注解
     */
    String type() default "text";


    /**
     * es 配置 field 名称
     *
     * @return es索引注解
     */
    String name() default "";


    /**
     * es 设置是否设置分词索引，默认为 not_analyzed
     * no：不添加到索引
     * not_analyzed：添加到索引不分词
     * analyzed ： 添加到索引并分词
     *
     * @return es索引注解
     */
    String index() default "not_analyzed";


    /**
     * es 设置分词器，默认为ik分词器
     * ik_smart,ik
     *
     * @return es索引注解
     */
    String analyzer() default "";

    /**
     * data 类型存储格式
     * "yyyy-MM-dd HH:mm:ss||yyyy-MM-dd||epoch_millis"
     */
    String format() default "";


}
